package com.example.demo.service;

import com.example.demo.domain.app.param.AuthorizeParam;
import com.example.demo.domain.app.vo.AmountVO;
import com.example.demo.domain.app.vo.AuthorizeVO;
import com.example.demo.domain.app.vo.UserInfoDataVO;
import com.example.demo.domain.base.PageResult;
import com.example.demo.domain.param.UserQueryParam;
import com.example.demo.domain.param.UserUpdateParam;
import com.example.demo.domain.vo.UserVO;

public interface UserService {

    UserVO userInfo(String userId);

    PageResult<UserVO> userList(UserQueryParam param);

    void login(String username, String password);

    /**
     * 用户分配角色
     */
    boolean assignRoles(Long userId, java.util.List<Long> roleIds);

    void userUpdate(UserUpdateParam param);

    void create(UserUpdateParam param);

    void delete(Long id);


    AuthorizeVO authorize(AuthorizeParam param);

    AuthorizeVO login(AuthorizeParam param);

    UserInfoDataVO detail();

    AmountVO amount();
}
